package com.second.common.pojo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 讲师
 * @TableName edu_teacher
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("edu_teacher")
@ApiModel(value="Teacher对象", description="讲师表")
public class Teacher implements Serializable {
    /**
     * 讲师ID
     */
    @ApiModelProperty(value = "讲师ID")
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 讲师姓名
     */
    @ApiModelProperty(value = "讲师姓名")
    private String name;

    /**
     * 讲师简介
     */
    @ApiModelProperty(value = "讲师简介")
    private String intro;

    /**
     * 讲师资历,一句话说明讲师
     */
    @ApiModelProperty(value = "讲师资历,一句话说明讲师")
    private String career;

    /**
     * 头衔 0高级讲师 1首席讲师
     */
    @ApiModelProperty(value = "头衔 0高级讲师 1首席讲师")
    private Integer level;

    /**
     * 讲师头像
     */
    @ApiModelProperty(value = "讲师头像")
    private String avatar;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private Integer sort;

    /**
     * 逻辑删除 1（true）已删除， 0（false）未删除
     */
    @ApiModelProperty(value = "逻辑删除 1（true）已删除， 0（false）未删除")
    private Integer isDeleted;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime gmtCreate;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime gmtModified;

    /**
     * 讲师手机
     */
    @ApiModelProperty(value = "讲师手机")
    private String mobile;

    /**
     * 讲师邮箱
     */
    @ApiModelProperty(value = "讲师邮箱")
    private String email;

    /**
     * 讲师状态  0 正常 ，1 禁用
     */
    @ApiModelProperty(value = "讲师状态  0 正常 ，1 禁用")
    private String status;

    private static final long serialVersionUID = 1L;

    public Teacher(){

    }

}